package com.changzhi.service;

import com.changzhi.ldyl.model.Activity;
import com.changzhi.ldyl.model.ActivityPrize;
import com.changzhi.ldyl.model.ActivityWallet;

import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @author: 小落
 * @date: 2020年11月04日
 */
public interface ActivityService {

	/**
	 * 获取活动信息
	 * @param id
	 * @return
	 */
	Activity getActivity(Integer id);

	/**
	 * 活动钱包
	 */
	ActivityWallet getActivityWalletCache(Integer activityId, String userId);

	/**
	 * 活动钱包
	 */
	ActivityWallet getActivityWallet(Integer activityId, String userId);

	/**
	 * 奖品列表
	 * @param activityId
	 * @param type
	 * @return
	 */
	ActivityPrize getPrize(Integer activityId, Integer type);

	/**
	 * 奖品列表
	 * @param activityId
	 * @param type
	 * @return
	 */
	List<ActivityPrize> getPrizeList(Integer activityId, Integer type);

	/**
	 * 指定礼物
	 */
	Map<Integer, Integer> someGiftIdList(Integer activityId, Integer type);

	/**
	 * 是否指定礼物
	 * @param giftId
	 */
	boolean isPointGift(Integer activityId, Integer giftId);

	/**
	 * 是否为测试账号
	 * @param userId
	 */
	boolean isTestAccount(String userId);

	/**
	 * 是否为公开厅
	 * @param channelId
	 * @return
	 */
	boolean isOpenChannel(String channelId);

	/**
	 * 抽奖奖品列表
	 * @param activityId
	 * @param minType
	 * @param maxType
	 * @return
	 */
	List<ActivityPrize> getLottyPrizeList(Integer activityId, Integer minType, Integer maxType);


	/**
	 * 抽奖
	 * @param prizes
	 * @return
	 */
	ActivityPrize randomPrize(List<ActivityPrize> prizes);



	/**
	 * 推送横幅
	 */
	void pushBanner(Integer type, String title, String content, String bgUrl, String linkValue, Long millisecond);

	/**
	 * 根据房间id判断是否为正常模式的房间
	 * @param channelId
	 * @return
	 */
	boolean checkNormalMode(String channelId);
}
